Field of the Invention
The invention relates in general to an error correction decoder, and more particularly to a technology capable of increasing the probability of successful error correction.
Description of the Related Art
A signals may be distorted as channels for transmitting signals are often interfered by various types of noises in real environments. Having arrived at a receiver, the distorted signal is down-converted to a baseband digital signal, demodulated by a demodulator, and decoded by a decoder. Further, an error bit in the signal is corrected. One most important task of an error correction code is correcting errors generated during the process of signal transmission to achieve highly reliable signal transmission. A Reed-Solomon code is a type of error correction code commonly applied in high-speed digital communication transmission systems. The Reed-Solomon code provides outstanding error correction capability on burst errors or random errors generated during the transmission process, and is thus a popular means for channel error correction encoding/decoding.
FIG. 1(A) shows an example of a function block diagram of a Digital Video Broadcasting-Cable (DVB-C) transmitter. An audiovisual decoder 111 encodes video data, audio data and other auxiliary data to a series of audiovisual encoded packets, each of which having a length of 188 bytes. An outer encoder 112 performs Reed-Solomon encoding on the audiovisual encoded packets. With a 16-byte check code added, the length of each outer encoded packet outputted by the outer encoder 11 is increased to 204 bytes. Alternatively, it is commonly regarded that each of the outer encoded packets includes 204 symbols. Next, an outer interleaver 113 performs a convolutional interleaving process on the outer encoded packets so that the order of the data is rearranged to reinforce an error tolerance of the data. A differential encoder 114 performs a differential encoding process on two most significant bits (MSB) of each of the symbols. A modulator 115 then performs quadrature amplitude modulation (QAM) on the differential encoded data, and forwards the modulated data to a frontend circuit 116 that performs up-conversion and digital-to-analog conversion processes.
FIG. 1(B) shows a function block diagram of a DVB-C receiver. By comparing FIG. 1(A) and FIG. 1(B), it is observed that, after entering the receiver, the signal sequentially passes a frontend circuit 121, a demodulator 122, a differential decoder 123, an outer deinterleaver 124, an error correction decoder 125 and an audiovisual decoder 126, which respectively correspond to the function blocks in the transmitter shown in FIG. 1(A). Each of the packets to be corrected received by the error correction decoder 125 includes 204 symbols, which include one or multiple symbols containing errors caused by noise interference during the transmission process. The error correction decoder 125 performs decoding according to characteristics of the Solomon-Reed coding, and at the same time identifies and corrects the errors.
The error correction capability of a Reed-Solomon decoder is associated with the number of check codes—the larger the amount of check codes is, the higher the error correction capability the decoder has. Assuming that in a packet, among n symbols, k symbols are actual data and (n−k) symbols are check codes, a limit of the error correction capability of the Reed-Solomon decoder is (n−k) symbols. More specifically, given that positions of all erroneous symbols in the packet are known in advance (without knowing actual contents of the errors), the Reed-Solomon decoder is capable of correcting at most (n−k) number of erroneous symbol contents. However, without knowing positions and contents of any of the erroneous symbols, the Reed-Solomon decoder can only correct at most (n−k)/2 number of erroneous symbol contents. Combining the two situations above, assuming that the positions of F number of erroneous symbols in one packet are learned in advance and F is smaller than (n−k), in addition to correcting the F erroneous symbols, the Reed-Solomon is capable of further correcting at most E number of erroneous symbols (without knowing the positions of these erroneous symbols), where a limit of the amount E is [(n−k)−F]/2. Thus, the error correction capability of a Reed-Solomon decoder is often represented as 2E+F≤(n−k).
Taking the DVB-C receiver shown in FIG. 1(B) for example, in each packet to be corrected received by the error correction decoder 125, 188 symbols are actual data, and 16 symbols are check codes. It is then known that, the limit of the error correction capability of the Reed-Solomon decoder 125 is 2E+F≤(204-188)=16. That is, without knowing the position of any of the erroneous symbols (F=0), given that the number of erroneous symbols in one packet to be correct does not exceed 8 (E≤8), the error correction decoder 125 is capable of correcting all erroneous symbols in this packet to be corrected in the decoding process. In contrast, without knowing the position of any of the erroneous symbols of this packet to be corrected, if the number of erroneous symbols exceeds 8, the error correction decoder 125 can only consider this packet to be decoded non-decodable, i.e., the decoding process of this packet to be decoded is unsuccessful. In another example, assuming that the positions of five erroneous symbols of a packet to be decoded are learned in advance (F=5), in addition to these five erroneous symbols with known positions, the error correction decoder 125 is further capable of correcting five erroneous symbols with unknown positions in this packet to be corrected (F E≤5.5), meaning that the total number of correctable erroneous symbols in this packet has increased to ten symbols (with five known positions and five unknown positions).
The above examples point out one characteristic of the Reed-Solomon coding—if the position information of a part or all of the errors is learned in advance before decoding, the total number of errors that can be corrected by a Reed-Solomon decoder is increased. Therefore, concerning the Reed-Solomon code or an error correction code with the same characteristic above, there is a need for a solution that identifies reliable position information of errors for the use of an error correction decoder.